import * as multer from 'multer'; // 导入 Multer 模块
import * as fs from 'fs'; // 导入文件系统模块

// 使用 diskStorage 创建存储引擎配置
const storage = multer.diskStorage({
  // 1. 定义文件存储目录
  destination: function (req, file, cb) {
    try {
      fs.mkdirSync('uploads'); // 尝试创建 "uploads" 目录（同步方法）
    } catch (e) {
      console.log(e); // 目录已存在时会报错，捕获并打印错误（不影响后续逻辑）
    }
    cb(null, 'uploads'); // 最终存储目录为 "uploads"（相对项目根目录）
  },

  // 2. 定义文件存储名称
  filename: function (req, file, cb) {
    // 生成唯一文件名：时间戳 + 随机数 + 原始文件名
    const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1e9) + '-' + file.originalname;
    cb(null, uniqueSuffix); // 使用生成的唯一名称作为文件名
  },
});

export { storage }; // 导出存储配置，供其他模块（如控制器）使用
